#include<bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
const int N=110;
#define INF 0x3f3f3f3f;
typedef long long int ll;
#define close(); std::ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
//----------------------------------------------------------------------------//

int n,m;
int path[N];
bool st[N];

bool dfs(int u)//第几位
{
	if(u==n)
	{
		m--;
		if(!m)//第m位已经找到
		{
			for(int i=0;i<n;i++) cout<<path[i]<<" ";
			cout<<'\n';
			return true;
		}
		return false;
	}

	for(int i=1;i<=n;i++)
	{
		if(!st[i])
		{
			path[u]=i;
			st[i]=true;

			if(dfs(u+1)) return true;//找到了第m个

			path[u]=0;
			st[i]=false;
		}
	}

	return false;
}
int main()
{
	close();
	cin>>n>>m;

	dfs(0);
	return 0;
}